package com.ruoyi.system.mapper;

import java.util.List;

import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.system.domain.Person;
import com.ruoyi.system.domain.DetectionCycle;
import com.ruoyi.system.domain.vo.PersonVo;
import org.apache.ibatis.annotations.Param;

/**
 * personMapper接口
 *
 * @author ruoyi
 * @date 2022-04-16
 */
public interface PersonMapper {
    /**
     * 查询person
     *
     * @param personId person主键
     * @return person
     */
    public Person selectPersonByPersonId(Long personId);

    /**
     * 查询person列表
     *
     * @param person person
     * @return person集合
     */
    @DataScope(deptAlias = "a")
    public List<Person> selectPersonList(Person person);

    /**
     * 查询总人数
     *
     * @return person集合
     */
    public Integer selectPersonCount(Long deptId);


    /**
     * 查询person列表
     *
     * @param person person
     * @return person集合
     */
    public List<Person> selectPersonListAll(Person person);

    /**
     * 新增person
     *
     * @param person person
     * @return 结果
     */
    public int insertPerson(Person person);

    /**
     * 修改person
     *
     * @param person person
     * @return 结果
     */
    public int updatePerson(Person person);

    /**
     * 删除person
     *
     * @param personId person主键
     * @return 结果
     */
    public int deletePersonByPersonId(Long personId);

    /**
     * 批量删除person
     *
     * @return 结果
     */
    public int deletePersonByPersonIds(Person person);

    /**
     * 清空表
     *
     * @return 结果
     */
    public int truncateTable();

    /**
     * 批量删除${subTable.functionName}
     *
     * @param personIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteDetectionCycleByIds(Long[] personIds);

    /**
     * 批量新增${subTable.functionName}
     *
     * @param detectionCycleList ${subTable.functionName}列表
     * @return 结果
     */
    public int batchDetectionCycle(List<DetectionCycle> detectionCycleList);


    /**
     * 通过person主键删除${subTable.functionName}信息
     *
     * @param personId personID
     * @return 结果
     */
    public int deleteDetectionCycleById(Long personId);

    /**
     * 根据身份证号查询人员
     */
    public Person getCardId(String cardId);

    /**
     * 导入重点人权信息
     *
     * @param personVo
     * @return 结果
     */
    public int insertPersonVo(PersonVo personVo);


    /**
     * 根据登陆用户部门查询
     *
     * @param person
     * @return 结果
     */
    public List<Person> selectPersonByDeptId(Person person);

    /**
     * 身份证号校验
     *
     * @param person
     * @return 结果
     */
    public List<Person> SelectCarid(Person person);


    /**
     * 身份证号校验
     *
     * @param cardId
     * @return 结果
     */
    public int SelectCaridVo(@Param("cardId") String cardId);
}
